/******************************************************************************
 * Copyright (C) ShenZhen Powerdata Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳市博安达信息技术股份有限公司开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.szboanda.business.relevance.business.service;

import com.github.pagehelper.PageInfo;
import com.szboanda.business.relevance.business.exception.RelevanceBusinessException;

import java.util.List;
import java.util.Map;

/**
 * @title:      关联引擎关联关系组件_业务接口类
 * @fileName:   RelevanceBusinessService.java
 * @description:
 * @copyright:  PowerData Software Co.,Ltd. Rights Reserved.
 * @company:    深圳市博安达信息技术股份有限公司
 * @author:     原晋川
 * @date:       2019-09-21 18:35
 * @version:    V1.0
 */
public interface IRelevanceBusinessService {

    /**
     * 查询【关联引擎关联关系组件】 业务信息
     *
     *
     * @param   modelInfo  业务Map集合
     * @return  返回业务集合
     * @throws  RelevanceBusinessException
     */
    List<Map<String, Object>>  queryRelevanceBusinesss( Map<String, Object> modelInfo) throws RelevanceBusinessException;
    List<Map<String, Object>>  queryTaskListRelevanceBusinesss( Map<String, Object> modelInfo) throws RelevanceBusinessException;

    /**
     * 查询【关联引擎关联关系组件】 业务信息
     *
     * @param   xh 主键
     * @return  返回业务集合
     * @throws  RelevanceBusinessException
     */
     Map<String,Object> queryRelevanceBusinessByXh(String xh) throws RelevanceBusinessException;

    /**
     * 查询【关联引擎关联关系组件】业务信息
     *
     * @param   pageNum 分页数
     * @param   pageSize 分页长度
     * @param   modelInfo  业务Map集合
     * @return  返回业务集合
     * @throws  RelevanceBusinessException
     */
    PageInfo<Map<String, Object>> queryRelevanceBusinesssInPage(int pageNum, int pageSize, Map<String, Object> modelInfo) throws RelevanceBusinessException;

    /**
     * 保存【关联引擎关联关系组件】业务信息
     *
     * @param  model  业务Map集合
     * @return 返回业务集合
     * @throws RelevanceBusinessException
     */
    Map<String,Object> saveRelevanceBusiness(Map<String, Object> model) throws RelevanceBusinessException;

    /**
     * 删除【关联引擎关联关系组件】业务信息
     *
     * @param   infos 业务Map集合
     * @return  返回操作标识符
     * @throws  RelevanceBusinessException
     */
    int deleteRelevanceBusiness(Map<String, Object> infos) throws RelevanceBusinessException;

    /**
     * 按住键删除【关联引擎关联关系组件】业务信息
     *
     * @param   xh 主键
     * @return  返回操作标识符
     * @throws  RelevanceBusinessException
     */
    Map<String,Object> deleteRelevanceBusinessByXh(String xh) throws RelevanceBusinessException;

    /**
     * 功能描述: 根据配置查询数据
     *
     * @param pageNum
     * @param pageSize
     * @param params 参数类型
     * @return
     * @auther 原晋川
     * @date 2019/9/23 10:17
     * @throws
     */
    PageInfo<Map<String, Object>> queryListByConfig(int pageNum, int pageSize, Map<String, Object> params) throws RelevanceBusinessException;

    /**
     * @Author 李柯
     * @Description 根据配置查询任务数据
     * @Date 16:48 2021/1/11
     * @Param [pageNum, pageSize, params]
     * @return com.github.pagehelper.PageInfo<java.util.Map<java.lang.String,java.lang.Object>>
     **/
    PageInfo<Map<String, Object>> queryTaskListByConfig(int pageNum, int pageSize, Map<String, Object> params) throws RelevanceBusinessException;

    /**
     *
     * @param businessId
     * @return int
     * @author 袁云飞
     * @creed: //添加关联关系之前先删除之前添加的
     * @date 2019/12/6 20:33
     */
    int deleteRelevanceBusinessByBusinessId(String businessId);
}